In recent years, the storage capacity of the disk drives, a representative example of which is the hard disk drive, has been increased. In proportion to the storage capacity, the recording density of the disk has increased, inevitably increasing the influence of errors made in reading data from the disk.
In the conventional disk drive, the read/write operation is performed, reading and writing from and to the disk in units of sectors. In the write operation, user data (i.e., write data) and an error correction code (ECC) are written in a sector. In the read operation, the ECC data is used, performing an error correction process, if a read error is made.
In the read operation, the ECC data can be used to correct errors in the sector. The ECC data has only a limited ability of correcting errors. If any part of the data is erased in units of sectors, the erased part of the data can hardly be recovered. Therefore, not only a method of correcting errors, but also a method of effectively recovering data is now demanded.
Any method that can efficiently recover data, however, has an overhead problem. That is, the storage capacity will increase to store recovery data, and the efficiency of recoding data on the disk will decrease. Further, the recovery data should be updated when the user data and ECC data are rewritten. A long time is inevitably, needed to write a great amount of recovery data. This lowers the efficiency of the write operation. Therefore, in the disk drive, an overhead should be avoided, and data should be effectively recovered by any other process than the error correction using the ECC data.